import Vue from 'vue'
import App from './App.vue'
import store from './store'
import router from './router'
// ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import left from './layout/Left'
import top from './layout/Top'
import constants from "./utils/constants"; // 全局域名常量

Vue.config.productionTip = false
Vue.prototype.blog_constant = constants; // 全局域名常量
// 引入布局文件
Vue.component('left', left);
Vue.component('top', top);
Vue.use(ElementUI);

import {checkToken} from '@/api/api'

// 路由全局前置守卫
router.beforeEach((to, from, next) => {
    // 如果是登录界面，则需要放行
    if (to.path === '/login') {
        // TODO 如果用户要跳转到登录页面
        // 当前已经登录，没必要再到登录界面，除非用户点击退出登录
        // 如果已经登录，根据角色判断页面跳转
        next();
    } else {
        // 否则检查用户角色（调用后端接口 通过Token获取用户信息来判断 ）
        checkToken().then(result => {
                // console.log('result ==> ', result)
                if (result.code === 20000) {
                    // 成功，判断用户角色
                    // 如果是管理员，放行
                    if (result.data.role == 'role_admin') {
                        next();
                    } else {
                        // 如果是普通用户，跳转到门户首页（这里还没做好）
                        location.href = 'https://www.baidu.com/';
                    }
                } else {
                    // 跳转到登录界面
                    next({
                        path: '/login'
                    })
                }
            }
        )
    }
    next();
})

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')